package com.sheng.leetcode.year2022.month10.day27;

import org.junit.Test;

/**
 * @author liusheng
 * @date 2022/10/27
 *<p>
 * 1822. 数组元素积的符号<p>
 *<p>
 * 已知函数 signFunc(x) 将会根据 x 的正负返回特定值：<p>
 * 如果 x 是正数，返回 1 。<p>
 * 如果 x 是负数，返回 -1 。<p>
 * 如果 x 是等于 0 ，返回 0 。<p>
 * 给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。<p>
 * 返回 signFunc(product) 。<p>
 *<p>
 * 示例 1：<p>
 * 输入：nums = [-1,-2,-3,-4,3,2,1]<p>
 * 输出：1<p>
 * 解释：数组中所有值的乘积是 144 ，且 signFunc(144) = 1<p>
 *<p>
 * 示例 2：<p>
 * 输入：nums = [1,5,0,2,-3]<p>
 * 输出：0<p>
 * 解释：数组中所有值的乘积是 0 ，且 signFunc(0) = 0<p>
 *<p>
 * 示例 3：<p>
 * 输入：nums = [-1,1,-1,1,-1]<p>
 * 输出：-1<p>
 * 解释：数组中所有值的乘积是 -1 ，且 signFunc(-1) = -1<p>
 *<p>
 * 提示：<p>
 * 1 <= nums.length <= 1000<p>
 * -100 <= nums[i] <= 100<p>
 */
public class LeetCode1822 {

    @Test
    public void test01() {
//        int[] nums = {-1,-2,-3,-4,3,2,1};
//        int[] nums = {1,5,0,2,-3};
//        int[] nums = {-1,1,-1,1,-1};
        int[] nums = {41,65,14,80,20,10,55,58,24,56,28,86,96,10,3,84,4,41,13,32,42,43,83,78,82,70,15,-41};
        System.out.println(new Solution().arraySign(nums));
    }
}
class Solution {
    public int arraySign(int[] nums) {
        int ans = 1;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == 0) {
                return 0;
            }
            if (nums[i] < 0) {
                ans = -ans;
            }
        }
        return ans;
    }
}
